<?php

/*
 * @description: Контроллер для работы с предметами
 * @copyright Copyright (c) 2012-2017 Marin V. , Tykva A. , Kozel R. , Sokolov D.
 * @version 1.0
 * @link http://lecturebox.ru
*/

class SubjectsController extends Model_Controller
{
    public function init()
    {
        /**
         * В parent::init() выполняется создание объекта Zend_Auth - $this->auth
         * и определение id текущего пользователя - $this->user_id
         */
        
        /*
         *       $session = new Zend_Session_Namespace('lectureBox.l10n');
        if ($session->locale) {
            if($session->locale == 'ru_RU'){
                
            } else {
            }
        } 
         */
        parent::init();
    }

    public function indexAction()
    {

    }
    
     /**
     * Добавление раздела
     */
    public function addAction() 
    {
        $session = new Zend_Session_Namespace('lectureBox.l10n');
        if ($session->locale) {
                if($session->locale == 'ru_RU'){
                     $this->view->title = 'Добавить новый раздел';
                        $this->view->headTitle($this->view->title, 'PREPEND');
                        $this->view->headMeta()->appendName('description',
                        'Добавить курсы. Страница добавления курсов.');
                }else{
                     $this->view->title = 'Add new section';
                     $this->view->headTitle($this->view->title, 'PREPEND');
                     $this->view->headMeta()->appendName('description',
                            'Adding sections page.');
                }
        }
       
        $form = new Form_AddSubject();

        if ($this->getRequest()->isPost()
                && $form->isValid($this->getRequest()->getPost()))
        {
            $course = new Model_Subject();
            $course->fill($form->getValues());
            $course->save();
            
            if ($session->locale) {
                if($session->locale == 'ru_RU'){
                    $this->_helper->flashMessenger->addMessage(
                    '<li class="text-success">Раздел добавлен успешно!</li>');
                } else {
                    $this->_helper->flashMessenger->addMessage(
                    '<li class="text-success">The section was successfully add!</li>');
                }
            }
            $this->_helper->redirector('subjects', 'admin');
        }
        
        $this->view->form = $form;
    }
    public function editAction() 
    {
        
        $id = (int) $this->getRequest()->getParam('sid');
        $session = new Zend_Session_Namespace('lectureBox.l10n');
        if ($session->locale) {
                    if($session->locale == 'ru_RU'){
                        $this->view->headTitle('Редактирование раздела', 'PREPEND');
                        $this->view->headMeta()->appendName('description',
                                'Страница редактирования раздела.');
                    } else {
                        $this->view->headTitle('Edit section', 'PREPEND');
                        $this->view->headMeta()->appendName('description',
                                'Edit page of section.');
                    }
        }
        // Проверка прав доступа
        $acl = Zend_Registry::get('acl');
        $auth = Zend_Auth::getInstance();
        $identity = $auth->getIdentity();
        $role = Bootstrap::getRole($identity->role);
        if(!$acl->isAllowed($role, 'mvc:subjects', 'edit'))
            return $this->_forward('login');
        
        // Используем форму
        $form = new Form_AddSubject();

        // Меняем action формы
        $form->setAction(Zend_Navigation_Page_Mvc::factory(array(
                    'action' => 'edit',
                    'controller' => 'subjects'
                ))->getHref());
        // Меняем текст на кнопке submit
        $form->getElement('submit')->setLabel('Сохранить данные');
        
        $sidp = new Zend_Form_Element_Hidden('sid');
        $sidp->addFilter('Int'); 
        $form->addElements(array($sidp));
        
        $sid = $this->getParam('sid');
                
        if (count($_POST)) 
        { 
            if($form->isValid($_POST))
            {
                $data = array (                    
                    'name' => $form->getValue('name'),
                    'description' => $form->getValue('description')
                );

                //$this->view->password_confirm = $this->_request->getPost('password_confirm');
                //$form->getElement('email')->setValue($this->_request->getPost('password_confirm'));
       
                // Сохраняем изменения в БД
                Zend_Db_Table::getDefaultAdapter()->update(
                        TABLE_PREF . 'subjects', $data, 'subject_id=' . $sid);
     
                if ($session->locale) {
                    if($session->locale == 'ru_RU')
                        $this->_helper->FlashMessenger('<li class="text-success">Сохранено</li>');
                    else
                        $this->_helper->FlashMessenger('<li class="text-success">Saved</li>');
                }
                $this->_redirect($_SERVER['REQUEST_URI'] . '/sid/' . 
                                $sid);
            }
        }
        else
        {
            // Вставляем в форму актуальные значения полей
            $course = new Model_Subject();            
            $_row = $course->getSubjectById($id);
            foreach ($_row as $item){
                $form->setDefault('sid', $item['subject_id']);
                $form->setDefault('name', $item['name']);
                $form->setDefault('description', $item['description']);
            } 
        }
        
        //$this->view->user_id = $this->user_id;        
        $this->view->form = $form;        
    }   

    public function deleteAction() 
    {
        $cid = (int) $this->getRequest()->getParam('sid');
        $session = new Zend_Session_Namespace('lectureBox.l10n');
        
        $lecture = new Model_Subject();            
        $lecture->delSubject($cid);
        
        if ($session->locale) {
            if($session->locale == 'ru_RU'){
                $this->_helper->flashMessenger->addMessage(
                '<li class="text-success">Раздел удален!</li>');
            } else {
                $this->_helper->flashMessenger->addMessage(
                '<li class="text-success">Subject removed!</li>');
            }
        }
        $this->_helper->redirector('subjects', 'admin');
    }    
}